
package com.feib.soeasy.dao;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.feib.soeasy.model.Group;
import com.feib.soeasy.model.Payment;
import com.feib.soeasy.pagination.PaginatedList;


/**
 * @title (#)Soez5005Dao.java<br>
 * @description <br>
 * @author Jimmy Liu<br>
 * @version 1.0.0 2010/11/25
 * @copyright Far Eastern International Bank Copyright (c) 2010<br>
 * @2011/3/14 create by Jimmy Liu<br>
 */
public interface Soez5006Dao {

	public List queryFeedBackLog(Group group, Date adayS, Date adayE, String channel,
			String commissionCode);

	/**
     * 超商代收統計表-以業者查詢
     * @param groupNo 業者代號
     * @param commissionCode
     * @param adayS 銷帳日期起
     * @param adayE 銷帳日期迄
     * @author Jimmy Liu
     * @since 2012/02/16
     * @return
     */
	public List<Map<String, Object>> queryStoreStatisticsByGroup(String groupNo,
			String commissionCode, Date adayS, Date adayE);

	/**
     * 找出銷帳日期區間內的Commission Code
     * @param group 業者代號
     * @param channel 超商代號
     * @param adayS 銷帳日期起
     * @param adayE 銷帳日期迄
     * @author Jimmy Liu
     * @since 2012/02/16
     * @return
     */
	public List<String> queryStoreCommissionCode(Group group, String channel,
			Date adayS, Date adayE);

	/**
	 * 以通路跟CommissionCode統計
	 * @param group
	 * @param channel
	 * @param commissionCode
	 * @param adayS
	 * @param adayE
	 * @return
	 */
	public List<Map<String, Object>> queryStoreStatistics(Group group,
			String channel, String commissionCode, Date adayS, Date adayE);

	/**
	 * 以通路別跟CommissionCode查詢明細
	 * @param groupNo
	 * @param channel
	 * @param commissionCode
	 * @param adayS
	 * @param adayE
	 * @return
	 */
	public List<Map<String, Object>> queryPaymentByChannelCommission(String groupNo,
			String channel, String commissionCode, Date adayS, Date adayE);

  
	 /** 組合以通路別跟CommissionCode查詢明細sql
	 * @param groupNo
	 * @param channel
	 * @param commissionCode
	 * @param adayS
	 * @param adayE
	 * @param order TODO
	 * @return
	 */
   public String getQueryPaymentByChannelCommission(String groupNo, String channel, String commissionCode, Date adayS, Date adayE,List<Object> args, boolean order);
   
 
   /** jeff 取得明細(根據群組)*/
	public PaginatedList<Map<String,Object>> queryPaymentByChannelCommission(Group group ,String channel ,String code, Date qryDateFrom, Date qryDateTo , PaginatedList<Map<String, Object>> paginationConfig);

	
	/** jeff 取得明細(根據群組跟通路)*/
	public PaginatedList<Map<String,Object>> queryPaymentByChannel(Group group ,String[] channels , Date[] dateFroms, Date[] dateTos , PaginatedList<Map<String, Object>> paginationConfig);


}
